Skip to main content
The final output all_stocks_fundamental_analysis.json.gz contains 86 fields per stock across 2,775 stocks, organized into 13 logical categories. This page documents every field, its data type, calculation method, and source.

Overview

Total Stocks

2,775

Fields per Stock

86

Total Data Points

238,650
File Size: ~7.5 MB compressed (38 MB uncompressed)Format: JSON array of objects (gzipped)

Field Categories

1. Identity & Classification

Basic identifying information and classification for each stock.
FieldTypeSourceDescriptionExample
SymbolStringmaster_isin_map.jsonStock ticker symbol"RELIANCE"
NameStringfundamental_data.jsonFull company name"Reliance Industries Limited"
Listing DateStringnse_equity_list.csvDate stock was listed on NSE"29-NOV-1977"
Basic IndustryStringfundamental_data.jsonCV.INDUSTRY_NAMEIndustry classification"Refineries"
SectorStringfundamental_data.jsonCV.SECTORSector classification"Energy"
IndexStringdhan_data_response.jsonidxlistComma-separated list of indices"NIFTY 50, NIFTY 100"
The pipeline filters for 37 specific index IDs:
requested_indices = {
    13,  # NIFTY 50
    51,  # NIFTY BANK
    38,  # NIFTY IT
    17,  # NIFTY NEXT 50
    # ... (33 more indices)
}

indices_found = []
for idx_obj in tech['idxlist']:
    if idx_obj['Indexid'] in requested_indices:
        indices_found.append(idx_obj['Name'])

stock['Index'] = ", ".join(indices_found)
If a stock is not part of any tracked index, this field shows "N/A".

Complete Field List (Alphabetical)

  1. 1 Day Returns(%)
  2. 1 Month Returns(%)
  3. 1 Week Returns(%)
  4. 1 Year Returns(%)
  5. 3 Month Returns(%)
  6. 5 Days MA ADR(%)
  7. 6 Month Returns(%)
  8. 14 Days MA ADR(%)
  9. 20 Days MA ADR(%)
  10. 30 Days Average Rupee Volume(Cr.)
  11. 30 Days MA ADR(%)
  12. 200 Days EMA Volume
  13. % from 52W High
  14. % from 52W High 200 Days EMA Volume
  15. % from 52W Low
  16. % from ATH
  17. ATH
  18. Basic Industry
  19. Circuit Limit
  20. D/E
  21. Daily Rupee Turnover 100(Cr.)
  22. Daily Rupee Turnover 20(Cr.)
  23. Daily Rupee Turnover 50(Cr.)
  24. Day Range(%)
  25. DII % change QoQ
  26. EMA Status
  27. EPS 2 Quarters Back
  28. EPS 2 Years Back
  29. EPS 3 Quarters Back
  30. EPS Last Year
  31. EPS Last Year Quarter
  32. EPS Latest Quarter
  33. EPS Previous Quarter
  34. Event Markers
  35. FII % change QoQ
  36. Float Shares(Cr.)
  37. FNO Flag
  38. Forward P/E
  39. Free Float(%)
  40. Gap Up %
  41. Historical P/E 5
  42. Index
  43. Latest Quarter
  44. Listing Date
  45. Lot Size
  46. Market Cap(Cr.)
  47. Max Returns since Earnings(%)
  48. Name
  49. Net Profit 2 Quarters Back
  50. Net Profit 3 Quarters Back
  51. Net Profit Last Year Quarter
  52. Net Profit Latest Quarter
  53. Net Profit Previous Quarter
  54. News Feed
  55. Next Expiry
  56. OPM 2 Quarters Back
  57. OPM 3 Quarters Back
  58. OPM Last Year Quarter
  59. OPM Latest Quarter
  60. OPM Previous Quarter
  61. OPM TTM(%)
  62. P/E
  63. PEG
  64. Pivot Point
  65. QoQ % EPS Latest
  66. QoQ % Net Profit Latest
  67. QoQ % OPM Latest
  68. QoQ % Sales Latest
  69. Quarterly Results Date
  70. Recent Announcements
  71. Returns since Earnings(%)
  72. ROCE(%)
  73. ROE(%)
  74. RSI (14)
  75. RVOL
  76. Sales 2 Quarters Back
  77. Sales 3 Quarters Back
  78. Sales Growth 5 Years(%)
  79. Sales Last Year Quarter
  80. Sales Latest Quarter
  81. Sales Previous Quarter
  82. Sector
  83. SMA Status
  84. Stock Price(₹)
  85. Symbol
  86. Technical Sentiment
  87. YoY % EPS Latest
  88. YoY % Net Profit Latest
  89. YoY % OPM Latest
  90. YoY % Sales Latest

Field Dependencies by Phase

If FETCH_OHLCV = False, 15 fields from Phase 4.1 (Advanced Metrics) and 3 fields from Phase 4.2 (Earnings Performance) will be zero or empty, resulting in 68 meaningful fields instead of 86.

Usage Examples

import json
import gzip

# Load the compressed file
with gzip.open('all_stocks_fundamental_analysis.json.gz', 'rt') as f:
    stocks = json.load(f)

print(f"Total stocks: {len(stocks)}")
print(f"Fields per stock: {len(stocks[0])}")

# Find stocks with high RVOL
high_rvol = [s for s in stocks if s.get('RVOL', 0) > 2.0]
print(f"Stocks with RVOL > 2.0: {len(high_rvol)}")

Next Steps

Pipeline Architecture

Understand how these fields are generated

Data Flow

Trace data transformations across phases

Quick Start

Run your first pipeline

Field Reference

Complete reference of all 86 fields

Advanced Usage

Learn advanced filtering and analysis techniques